home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Development / RxMUI / Examples / GfxPic.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2004-01-31  |  6.5 KB  |  204 lines

  1. /**/
  2.  
  3. signal on halt
  4. signal on break_c
  5.  
  6. call Init
  7. call CreateApp
  8. call HandleApp
  9. /* never reached */
  10. /***********************************************************************/
  11. Init: procedure expose global.
  12.     l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit
  13.     if AddLibrary("rxmui.library")~=0 then exit
  14.     parm.0.value=""
  15.     if ~ReadArgs("FILE,FREE/S,TRANS/S") then do
  16.         call PrintFault()
  17.         exit
  18.     end
  19.     global.file=parm.0.value
  20.     global.free=parm.1.flag
  21.     global.trans=parm.2.flag
  22.     call RxMUIOpt("debugmode showerr")
  23.     return
  24. /***********************************************************************/
  25. HandleApp: procedure expose global.
  26.     ctrl_c=2**12
  27.     do forever
  28.         call NewHandle("app","h",ctrl_c)
  29.         if and(h.signals,ctrl_c)>0 then exit
  30.         select
  31.             when h.event="QUIT" then exit
  32.             otherwise interpret h.event
  33.         end
  34.     end
  35.     /* never reached */
  36. /***********************************************************************/
  37. CreateApp: procedure expose global.
  38.  
  39.     app.Title="GFXPicExample"
  40.     app.Version="$VER: GFXPicExample 2.0 (5.3.2000)"
  41.     app.Copyright="Copyright 2003 by  alfie"
  42.     app.Author="alfie"
  43.     app.Description="GFXPicExample"
  44.     app.Base="RXMUIEXAMPLE"
  45.  
  46.     app.SubWindow="win"
  47.      win.ID="MAIN"
  48.      win.Title="GFXPic example"
  49.      win.UseRightBorderScroller=1
  50.      win.UseBottomBorderScroller=1
  51.  
  52.      win.Contents="mgroup"
  53.  
  54.       mgroup.0="sg"
  55.        sg.Class="Scrollgroup"
  56.        sg.aFrame="virtual"
  57.        sg.aBackground="groupback"
  58.        sg.UseWinBorder=1
  59.  
  60.        sg.VirtGroupContents="vg"
  61.         vg.Class="Virtgroup"
  62.          vg.0="dt"
  63.           dt.Class="GFXPic"
  64.           dt.Transparent=0
  65.           dt.XUnlimited=1
  66.           dt.yUnlimited=1
  67.           dt.rendered=1
  68.           dt.FreeHoriz=global.free
  69.           dt.FreeVert=global.free
  70.           dt.Transparent=global.trans
  71.           dt.LoadAtOpen=1
  72.  
  73.     app.SubWindow.1="cwin"
  74.      cwin.ID="CWIN"
  75.      cwin.Title="GFXPic example controls"
  76.  
  77.      cwin.Contents="cmgroup"
  78.  
  79.       cmgroup.0="IG"
  80.         ig.Class="hgroup"
  81.          ig.0=label("_Image")
  82.          ig.1="popa"
  83.           popa.Class="popasl"
  84.           popa.String=string("image",'i',global.file)
  85.  
  86.       cmgroup.1="rd"
  87.        rd.Class="gauge"
  88.        rd.Horiz=1
  89.        rd.FixHeightTxt="X"
  90.        rd.Max=100
  91.       cmgroup.2=XNewObj("scale")
  92.  
  93.       cmgroup.3="fg"
  94.        fg.Class="group"
  95.        fg.Frame="group"
  96.        fg.Background="groupback"
  97.        fg.Columns=2
  98.         fg.0=label("_Scale")
  99.         fg.1="ssg"
  100.          ssg.Class="hgroup"
  101.           scale.Disabled=global.free
  102.           scale.Stringify="parse arg v;if v=0 then return 'Off';return v '%'"
  103.           ssg.0=MakeObj("scale","slider",'s',0,200)
  104.            applyscale.SetMax=1
  105.            applyscale.Disabled=global.free
  106.           ssg.1=button("applyscale","_Apply")
  107.         fg.2=label("_Trans")
  108.         fg.3="cg"
  109.          cg.class="hgroup"
  110.            trans.Disabled=1
  111.           cg.0=checkmark("trans",global.trans,"t")
  112.           cg.1=button("flipx","Flip _X")
  113.           cg.2=button("flipy","Flip _Y")
  114.         fg.4=label("_HSType")
  115.         fg.5="ccg"
  116.          ccg.class="hgroup"
  117.           ccg.0=MakeObj("hstype","Cycle","12Bit|15Bit|18Bit|21Bit|24Bit|12BitTurbo|15BitTurbo|18BitTurbo",'h',5)
  118.           ccg.1=label("_Dither")
  119.           ccg.2=MakeObj("dither","Cycle","None|FS|RANDOM|EDD",'d',1)
  120.           ccg.3=label("_Quality")
  121.           ccg.4=MakeObj("quality","Cycle","Gui|Icon|Image|Exact",'q',2)
  122.  
  123.       cmgroup.4="dg"
  124.        dg.Class="group"
  125.         dg.Columns=4
  126.         dg.Frame="group"
  127.         dg.Background="groupback"
  128.          dg.0=label("Image width")
  129.          dg.1=text("width")
  130.          dg.2=label("Image height")
  131.          dg.3=text("height")
  132.          dg.4=label("Scaled width")
  133.          dg.5=text("swidth")
  134.          dg.6=label("Scaled height")
  135.          dg.7=text("sheight")
  136.  
  137.     if NewObj("APPLICATION","APP")>0 then exit
  138.  
  139.     call Notify("win","CloseRequest",1,"app","ReturnID","quit")
  140.     call Notify("cwin","CloseRequest",1,"app","ReturnID","quit")
  141.  
  142.     call Notify("image","Newcontents","EveryTime","app","Return","call rebuild")
  143.     call Notify("applyscale","Pressed",0,"app","Return","call scale()")
  144.     call Notify("flipx","Pressed",0,"app","Return","call flipx")
  145.     call Notify("flipY","Pressed",0,"app","Return","call flipY")
  146.     call Notify("trans","Selected","EveryTime","dt","set","Transparent","TriggerValue")
  147.     call Notify("hstype","ActiveEntry","EveryTime","app","return","call rebuildChange")
  148.     call Notify("dither","ActiveEntry","EveryTime","app","return","call rebuildChange")
  149.     call Notify("quality","ActiveEntry","EveryTime","app","return","call rebuildChange")
  150.  
  151.     call Notify("dt","ImageWidth","EveryTime","Width","set","integer","TriggerValue")
  152.     call Notify("dt","ImageHeight","EveryTime","Height","set","Integer","TriggerValue")
  153.     call Notify("dt","ScaledWidth","EveryTime","swidth","set","Integer","TriggerValue")
  154.     call Notify("dt","ScaledHeight","EveryTime","sheight","set","Integer","TriggerValue")
  155.     call Notify("dt","Alpha","EveryTime","trans","set","disabled","NotTriggerValue")
  156.     call Notify("dt","Rendered","EveryTime","rd","set","Current","TriggerValue")
  157.  
  158.     call set("win","Open",1)
  159.     call set("cwin","Open",1)
  160.     call rebuild
  161.  
  162.     return
  163. /***********************************************************************/
  164. rebuild: procedure expose global.
  165.     call set("app","Sleep",1)
  166.     call get("image","Contents",f)
  167.     call DoMethod("sg","InitChange")
  168.     call set("dt","Source",f)
  169.     call DoMethod("sg","ExitChange")
  170.     call set("app","Sleep",0)
  171.     return
  172. /**************************************************************************/
  173. halt:
  174. break_c:
  175.     exit
  176. /**************************************************************************/
  177. scale: procedure expose global.
  178.     call set("app","Sleep",1)
  179.     call DoMethod("sg","InitChange")
  180.     call set("dt","Scale",xget("scale","Value"))
  181.     call DoMethod("sg","ExitChange")
  182.     call set("app","Sleep",0)
  183.     return
  184. /**************************************************************************/
  185. flipx: procedure expose global.
  186.     call set("app","Sleep",1)
  187.     call DoMethod("dt","FlipX")
  188.     call set("app","Sleep",0)
  189.     return
  190. /**************************************************************************/
  191. flipy: procedure expose global.
  192.     call set("app","Sleep",1)
  193.     call DoMethod("dt","FlipY")
  194.     call set("app","Sleep",0)
  195.     return
  196. /**************************************************************************/
  197. rebuildChange: procedure expose global.
  198.     call set("dt","HSType",xget("hstype","activeentry"))
  199.     call set("dt","DitherMode",xget("dither","activeentry"))
  200.     call set("dt","Precision",xget("quality","activeentry"))
  201.     call rebuild
  202.     return
  203. /**************************************************************************/
  204.